//信号量 之前的条件是对资源的整体使用 这个是分块使用
#include "Ringqueue.hpp"
#include <unistd.h>
void* consumer(void* args)
{
    RingQueue<int>* rq=(RingQueue<int>*)args;
    while(true)
    {
        int data=0;
        rq->Pop(&data);
        cout<<"消费者消费了一个数据："<<data<<endl;
        sleep(1);

    }
    

}
void* producter(void* args)
{
    RingQueue<int>* rq=(RingQueue<int>*)args;
    int data=0;
    while(true)
    {
        
        rq->Enqueue(data++);
        cout<<"生产者消费了一个数据："<<data<<endl;


    }
}
int main()
{
    RingQueue<int>* rq =new RingQueue<int>();
    pthread_t c,p;
    pthread_create(&c,nullptr,consumer,(void *) rq);
    pthread_create(&p,nullptr,producter,(void*)rq);

    pthread_join(c,nullptr);
    pthread_join(p,nullptr);


    delete rq;
    return 0;
}
